import re

# 查找所有匹配到的内容
# re.findall(正则表达式，原字符串) 返回查到的所有字符串 列表(每次匹配到的结果都以字符串存放在列表中)
# lit = re.findall(r"\d+","123445A123")
# lit = re.findall(r'\w+', str(input()))
# print(lit)



# re.finditer()  拿到匹配到结果的迭代器   重点
# result = re.finditer(r"\d+","12123ahdsgahsda8182313")

# item表示 每次从中遍历的匹配结果对象
# for item in result:
    # item.group() 拿到结果  从match对象中拿数据
    # print(item.group())


#search 方法只拿到第一次匹配到的结果 并返回   返回的是匹配对象
# result = re.search(r"\d+","32asda,asda12121")
# print(result.group())

# match 从开头进行匹配，也只匹配一个结果， 类似在正则前面加一个^
# result = re.match(r"\d+","asa32asda,asda12121")
# print(result)


#预加载  提前把正则对象加载完毕
# re.compile(正则表达式)  返回正则表达式对象
# obj = re.compile(r'\d+')
# obj.finditer(匹配的字符串)  正则对象.finditer(匹配的字符串) 按照正则对象的正则表达式要求进行匹配！ 返回列表
#
# result = obj.findall("asa32asda,asda12121")
# print(result)


#想要提取数据必须用小括号括起来，可以单独取名字
#(?P<名字>正则)
#提取数据的时候，需要group("名字")

s = """
<div class='西游记'><span id='10010'>中国联通</span></div>
<div class='西游记'><span id='10086'>中国移动</span></div>
"""
obj = re.compile(r"<span id='(?P<id>\d+)'>(?P<name>.*?)</span>")
# result = obj.findall(s)

# 分组之后只能用finditer() 获取迭代器，遍历迭代器取得数据
result = obj.finditer(s)
for item in result:
     id = item.group('id')
     name = item.group('name')
     print(id, name)







